package com.leyou.user.inter.pojo;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @数表名称 tb_user
 * @开发日期 2020-03-09
 */
@Data
@Table(name="tb_user")
@NoArgsConstructor
public class User implements Serializable {
    
    /** 主键id (主健ID) */
    @Id
    @Column(name="id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 创建时间 */
    @Column(name="create_date")
    private Date createDate;

    /** 修改时间 */
    @Column(name="update_date")
    @JsonIgnore
    private Date updateDate;

    /** 删除时间 */
    @Column(name="delete_date")
    @JsonIgnore
    private Date deleteDate;

    /** 是否删除：0/否 1/删除  (默认值为: 0) */
    @Column(name="is_delete")
    private Boolean isDelete;

    /** 用户名 */
    @Column(name="username")
    private String username;

    /** 密码 */
    @Column(name="password")
    @JsonIgnore //在json序列化时,不会把值返回
    private String password;

    /** 电话号码 */
    @Column(name="phone")
    private String phone;

    /** 真实姓名 */
    @Column(name="name")
    @JsonIgnore
    private String name;

    /** 密码加密的salt值 */
    @Column(name="salt")
    @JsonIgnore
    private String salt;

    /** 头像 */
    @Column(name="head_img")
    private String headImg;

    /** 出生日期 */
    @Column(name="birth_date")
    private Date birthDate;

    /** 性别：0/保密 1/男 2/女  (默认值为: 0) */
    @Column(name="sex")
    private Integer sex;

    /** 个性标签 */
    @Column(name="charactor_tag")
    private String charactorTag;

    /** 联系地址 */
    @Column(name="adress")
    @JsonIgnore
    private String adress;

    /** 是否锁定：0/否 1/锁定  (默认值为: 0) */
    @Column(name="is_locked")
    @JsonIgnore
    private Boolean isLocked;

    /** 锁定日期 */
    @Column(name="locked_date")
    @JsonIgnore
    private Date lockedDate;

    /** 锁定天数 */
    @Column(name="locked_day")
    @JsonIgnore
    private Integer lockedDay;

    /** 用户类型：0/后台用户、1/前台用户 */
    @Column(name="is_flag")
    private Boolean isFlag;

    public User(String username,String phone) {
        this.username = username;
        this.phone = phone;
    }

    private static final long serialVersionUID = 1L;
}